import { App } from 'vue';
import BpmnViewer from './components/BpmnViewer.vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
import * as ElementPlusIconsVue from '@element-plus/icons-vue';

// 导入所有图标并全局注册
export function registerElementIcons(app: App) {
  for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component);
  }
}

// 组件列表
const components = [BpmnViewer];

// 定义 install 方法， App 作为参数
const install = (app: App): void => {
  // 安装 ElementPlus
  app.use(ElementPlus);

  // 注册 ElementPlus 图标
  registerElementIcons(app);

  // 注册组件
  components.forEach(component => {
    app.component(component.name || component.__name as string, component);
  });
};

// 默认导出对象，包含 install 方法
export default {
  install
};

// 单独导出组件
export { BpmnViewer };